﻿Public Class productCategorieClass
    Private PCKPID = Nothing
    Private PCKNAME = Nothing
    Private REMARK = Nothing

    Private PCKLSTID = Nothing
    Private PRDCODE = Nothing
    
    Private STATUS = Nothing
    Private selectPckproduct = "SELECT `pckpid` AS 'รหัสกลุ่มผลิตภัณฑ์', `pckname` AS 'ชื่อกลุ่มผลิตภัณฑ์', `remark` AS 'หมายเหตุ', `status` AS 'สถานะการเปิดใช้งาน' FROM pckproduct"
    Private selectPcklistproduct = "SELECT a.`pcklstid` AS 'รหัสสินค้าในกลุ่มผลิตภัณฑ์ย่อย', a.`pckpid` AS 'รหัสกลุ่มผลิตภัณฑ์หลัก', a.`prdcode` AS 'รหัสผลิตภัณฑ์', b.`prdname` AS 'ชื่อผลิตภัณฑ์', c.`catname` AS 'ประเภทผลิตภัณฑ์', a.`status` AS 'สถานะการเปิดใช้งาน', '< นำออกจากรายการ' AS 'นำออกจากรายการ' FROM pcklistproduct a JOIN masproduct b ON a.prdcode = b.prdcode JOIN masprdcats c ON b.prdcat = c.prdcat"
    Private selectMasproduct = "SELECT a.`prdcode` AS 'รหัสผลิตภัณฑ์', a.`prdname` AS 'ชื่อผลิตภัณฑ์', a.`prdcat` AS 'รหัสประเภทผลิตภัณฑ์', b.`catname` AS 'ประเภทผลิตภัณฑ์', 'นำเข้ารายการ >' AS 'นำเข้ารายการ' FROM masproduct a JOIN masprdcats b ON a.prdcat = b.prdcat WHERE status = '1'"
    'Private selectMasdrgdoswuse = "SELECT USEID, DUCODE, DUSENAME, STATUS FROM masdrgdoswuse"
    'Private selectMasdrgacc = "SELECT DGTYID, DRGTYPE, convert(bit, [STATUS]) FROM MASDRGTYPE"

    Dim connect As CONDB = CONDB.NewConnection()
    'Dim connectlocal As conlocal = conlocal.NewConnection

    Property PCKPID_ As Integer
        Get
            Return PCKPID
        End Get
        Set(value As Integer)
            PCKPID = value
        End Set
    End Property

    Property PCKNAME_ As String
        Get
            Return PCKNAME
        End Get
        Set(value As String)
            PCKNAME = value
        End Set
    End Property

    Property REMARK_ As String
        Get
            Return REMARK
        End Get
        Set(value As String)
            REMARK = value
        End Set
    End Property

    Property PCKLSTID_ As Integer
        Get
            Return PCKLSTID
        End Get
        Set(value As Integer)
            PCKLSTID = value
        End Set
    End Property

    Property PRDCODE_ As Integer
        Get
            Return PRDCODE
        End Get
        Set(value As Integer)
            PRDCODE = value
        End Set
    End Property

    Property STATUS_ As Boolean
        Get
            Return STATUS
        End Get
        Set(value As Boolean)
            If value = True Then
                STATUS = 1
            Else
                STATUS = 0
            End If
        End Set
    End Property

    Property selectPckproduct_ As String
        Get
            Return selectPckproduct
        End Get
        Set(value As String)

        End Set
    End Property

    Property selectPcklistproduct_ As String
        Get
            Return selectPcklistproduct
        End Get
        Set(value As String)

        End Set
    End Property

    Property selectMasproduct_ As String
        Get
            Return selectMasproduct
        End Get
        Set(value As String)

        End Set
    End Property

    Public Function queryProductlistFromCategorie(PCKPID As String)
        Dim pckProductlistData As DataTable
        pckProductlistData = connect.GetTable("SELECT a.`pcklstid` AS 'รหัสสินค้าในกลุ่มผลิตภัณฑ์ย่อย', a.`pckpid` AS 'รหัสกลุ่มผลิตภัณฑ์หลัก', a.`prdcode` AS 'รหัสผลิตภัณฑ์', b.`prdname` AS 'ชื่อผลิตภัณฑ์', c.`catname` AS 'ประเภทผลิตภัณฑ์', a.`status` AS 'สถานะการเปิดใช้งาน', '< นำออกจากรายการ' AS 'นำออกจากรายการ' FROM pcklistproduct a JOIN masproduct b ON a.prdcode = b.prdcode JOIN masprdcats c ON b.prdcat = c.prdcat WHERE pckpid = '" & PCKPID & "'")
        'masgrpdrgData = connectlocal.GetTable(objSelectDataMasgrpdrg.selectMasgrpdrg_)
        Return pckProductlistData
    End Function

    Public Sub insertPckproduct()
        If connect.GetTable("SELECT pckpid FROM pckproduct WHERE pckname = '" & PCKNAME & "'").Rows.Count > 0 Then
            MsgBox("มีข้อมูลหมวดผลิตภัณฑ์นี้อยู่ในระบบแล้ว")
        Else
            Try
                connect = CONDB.NewConnection()
                'connectlocal = conlocal.NewConnection()
                'Dim dischargeID As Integer

                connect.ExecuteNonQuery("INSERT INTO pckproduct (pckname, remark, status) VALUES ('" & PCKNAME & "', '" & REMARK & "', '" & STATUS & "')")
                'dischargeID = connect.ExecuteScalar("INSERT INTO masdischarge (DISCHARGE, STATUS) VALUES ('" & masdischargeDescription & "', '" & masdischargeStatus & "'); SELECT LAST_INSERT_ID();")
                'connectlocal.ExecuteNonQuery("INSERT INTO MASDISCHARGE (DISCHGID, DISCHARGE, STATUS) VALUES ('" & dischargeID & "', '" & masdischargeDescription & "', '" & masdischargeStatus & "')")
                MsgBox("ท่านได้ทำการเพิ่มข้อมูลหมวดสินค้าเรียบร้อยแล้ว")
            Catch ex As Exception
                MsgBox(vbCrLf & ex.Message)
            End Try
            connect.Dispose()
            'connectlocal.Dispose()
        End If
    End Sub

    Public Sub editPckproduct()
        If TypeOf PCKPID Is Integer And TypeOf PCKNAME Is String Then
            Try
                connect = CONDB.NewConnection()
                'connectlocal = conlocal.NewConnection()

                connect.ExecuteNonQuery("UPDATE pckproduct SET pckname = '" & PCKNAME & "', remark = '" & REMARK & "', status = '" & STATUS & "' WHERE pckpid = '" & PCKPID & "'")
                'connectlocal.ExecuteNonQuery("UPDATE MASDISCHARGE SET DISCHARGE = '" & masdischargeDescription & "', STATUS = '" & masdischargeStatus & "' WHERE DISCHGID = '" & masdischargeID & "'")
                MsgBox("ท่านได้ทำการแก้ไขข้อมูลหมวดผลิตภัณฑ์เรียบร้อยแล้ว")
            Catch ex As Exception
                MsgBox(vbCrLf & ex.Message)
            End Try
            connect.Dispose()
            'connectlocal.Dispose()
        Else
            MsgBox("โปรดกรุณาระบุข้อมูลให้ถูกต้อง ต้องเป็นตัวอักษร")
        End If
    End Sub

    Public Sub insertPcklistproduct()
        If connect.GetTable("SELECT pcklstid FROM pcklistproduct WHERE prdcode = '" & PRDCODE & "' AND pckpid = '" & PCKPID & "'").Rows.Count > 0 Then
            MsgBox("มีข้อมูลผลิตภัณฑ์นี้อยู่ในหมวดที่ท่านเลือกแล้ว")
        Else
            Try
                connect = CONDB.NewConnection()
                'connectlocal = conlocal.NewConnection()
                'Dim dischargeID As Integer

                connect.ExecuteNonQuery("INSERT INTO pcklistproduct (pckpid, prdcode, status) VALUES ('" & PCKPID & "', '" & PRDCODE & "', '1')")
                'dischargeID = connect.ExecuteScalar("INSERT INTO masdischarge (DISCHARGE, STATUS) VALUES ('" & masdischargeDescription & "', '" & masdischargeStatus & "'); SELECT LAST_INSERT_ID();")
                'connectlocal.ExecuteNonQuery("INSERT INTO MASDISCHARGE (DISCHGID, DISCHARGE, STATUS) VALUES ('" & dischargeID & "', '" & masdischargeDescription & "', '" & masdischargeStatus & "')")
                MsgBox("ท่านได้ทำการเพิ่มข้อมูลสินค้าเข้าสู่หมวดสินค้าเรียบร้อยแล้ว")
            Catch ex As Exception
                MsgBox(vbCrLf & ex.Message)
            End Try
            connect.Dispose()
            'connectlocal.Dispose()
        End If
    End Sub

    Public Sub delPcklistproduct()
        If TypeOf PCKLSTID Is Integer Then
            Try
                connect = CONDB.NewConnection()
                'connectlocal = conlocal.NewConnection()

                connect.ExecuteNonQuery("DELETE FROM pcklistproduct WHERE pcklstid = '" & PCKLSTID & "'")
                'connectlocal.ExecuteNonQuery("UPDATE MASDISCHARGE SET DISCHARGE = '" & masdischargeDescription & "', STATUS = '" & masdischargeStatus & "' WHERE DISCHGID = '" & masdischargeID & "'")
                MsgBox("ท่านได้ทำการลบผลิตภัณฑ์จากหมวดเรียบร้อยแล้ว")
            Catch ex As Exception
                MsgBox(vbCrLf & ex.Message)
            End Try
            connect.Dispose()
            'connectlocal.Dispose()
        Else
            MsgBox("โปรดกรุณาระบุข้อมูลให้ถูกต้อง ต้องเป็นตัวอักษร")
        End If
    End Sub
End Class